<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 英文：
// float - 浮点数/小数

// JS 当中的数据类型：
  // 可以分为两大类：
    // 5种 基础数据类型、1种 复杂数据类型

// 5种基础数据类型:
  // 数字、字符串、布尔值、null、undefined


// --------------- 数字 --------------
// 数字：
var num = 123; // 十进制的数字类型
var numFloat = 123.123; // 十进制的浮点数类型
var numBinary = 0b11111; // 二进制，换成十进制是 15
  // 写法 `0b1100110101` 输出的结果值为 十进制
var numHex = 0xff; // 十六进制，换成十进制是 255 



// ------------------ 字符串 --------------------
// 字符串：
var str = 'af123'; // 单引号
var str2 = "23dwd"; // 双引号

var str3 = `水电费输入法2343`; // 字符串模板； 注：其为 ES6新增的语法


/* 转义字符
  // 换行符： `\n`   ->  new line
    var str4 = '你好：\n我叫子龙';
    console.log(str4);

  // 缩进符： `\t`  ->  tab
  var str5 = '你好：\t我叫子龙';
  console.log(str5);
*/


/* 案例：字符串输出 “你好，我的名字叫 name，我的年龄是 age”
  技术点：字符串拼接  +  表达式的深入理解

  var name = '小小明';
  var age = 13;
  // 字符串拼接： `+` 左右两侧，只要有一个字符串，即`+`的作用是 字符串拼接。
  console.log('你好，我的名字叫' + name + '，我的年龄是' + age);
*/

/* 字符串模板的作用1：
  语法：`字符串.. ${变量}`

  var name = '小小宋';
  var age = 23;
  // 字符串拼接： `+` 左右两侧，只要有一个字符串，即`+`的作用是 字符串拼接。
  console.log(`你好，我的名字叫${name}，我的年龄是${age}`);
*/

// 字符串模板的作用2：可以直接换行
  // var str5 = `你好：
  // 我叫子龙···`;
  // console.log(str5);


// ------------------ 布尔值 --------------------
var bolYes = true; // 布尔值 - `是`
var bolNo = false; // 布尔值 - `否`


// ------------------ undefined --------------------
var unf; // 定义了一个变量，但不给其 赋值
// console.log(unf); // `undefined` 
// undefined 的含义：定义了一个变量，但为给其赋值


// ------------------   null   ------------------
var nul = null; // 注：null 算 JS的设计缺陷之一。
  // 其本质 和 undefined 的作用 非常像。
  // 其作用，咱后续再讲。
console.log(nul);
</script>